package com.lqian.inner_class.demo03;

/**
 * @author：Melody_LQ
 * @time：2022/9/4 1:26 下午
 */
public class MainTest {

    private class T1 extends A{
        @Override
        public String name(){
            return super.name();
        }
    }

    private class T2 extends B{
        @Override
        public int age() {
            return super.age();
        }
    }

    public String name(){
        return new T1().name();
    }

    public int age(){
        return new T2().age();
    }


    public static void main(String[] args) {
        MainTest mt = new MainTest();
        System.out.println("姓名："+mt.name());
        System.out.println("年龄："+mt.age());

        /**
         *  从上面的栗子可以看出：
         *  内部类的方法间接的实现了多继承，使得子类同时具有A、B两个积累的方法
         *  但也许我们会觉得这种设计有些多余，因为通过接口也可以很好的实现
         *  但是需要考虑到，implements一个接口的话是需要实现接口中全部的抽象方法的
         *  这样一来也包括一些我们不需要或者不想去实现的方法，造成了多余代码
         */
    }

}
